#include <stdio.h>
#define MAXSIZE 100
typedef int DataType;

typedef struct{
    DataType list[MAXSIZE];
    int size;
} SeqList;

void ListInitiate(SeqList *L){//初始化L
    L->size=0;//定义初始元素个数
}

int ListLength(SeqList L){
    return L.size;
}
//
int ListInsert(SeqList *L,int i,DataType x) {
    int j;
    if (L->size >= MAXSIZE) {
        printf("顺序表已满无法插入！\n");
        return 0;
    }
    else if (i <0 || i > L->size) {
        printf("参数i不合法！\n");

        return 0;
    }
        //此段有错误
    else {

        for (j = L->size; j >= i; j--) {
            L->list[j] = L->list[j+1];
            L->list[i] = x;
            L->size++;//元素个数加一
            return 1;
        }
    }
}
int ListDelete(SeqList *L,int i,DataType *x){
    int j;
    if(L->size<=0){
        printf("顺序表已空无数据元素可删！\n");
        return 0;
    }
    else if(i<0||i>L->size-1){
        printf("参数i不合法");
        return  0;
    }

        //此段有错误
    else{
        *x=L->list[i];
        for(j=i+1;j<=L->size-1;j++ )
            L->list[j-1]=L->list[j];

        L->size--;
        return 1;

    }

}
int ListGet(SeqList L,int i,DataType *x){
    if(i<0||i>L.size-1){
        printf("参数i不合法！\n");
        return 0;
    }
    else{
        *x=L.list[i];
        return 1;
    }
}
int ListSearch(SeqList L,DataType x){
    for(int i=0 ;i<L.size;i++)
        if(L.list[i] == x)return i;
    return -1;

}
int main(int argc,char*argv[]){
    SeqList myList;
    int i,x;
    ListInitiate(&myList);
    for(i=0;i<10;i++)
        ListInsert(&myList,i,i+1);

    ListDelete(&myList,4,&x);

    //此段有错误
    for(i=0;i<ListLength(myList);i++){
        ListGet(myList,i,&x);
        printf("%d",x);
    }
    ListSearch(myList,9);
    return 0;


}
